def whoIsLast(n):
  arr=[item for item in range(1,n+1)]
  while len(arr)>2:
    newArr = []
    for i in range(len(arr)):
      if (i+1)%3!=0:
        newArr.append(arr[i])
    # 调整顺序
    arrLen=len(arr)
    if arrLen%3 ==1:
      mid = newArr.pop()
      newArr.insert(0,mid)
    elif arrLen%3==2:
      mid = newArr.pop()
      newArr.insert(0,mid)
      mid = newArr.pop()
      newArr.insert(0,mid)
    # 循环完成后对arr重新赋值
    arr=newArr
  return arr
print(whoIsLast(10))

# 人工智能解决方案
def whoIsLastAR(n):
    arr = list(range(1, n + 1))
    
    while len(arr) > 2:
        # 根据剩余元素的数量调整顺序
        remainder = len(arr) % 3
        # 移除每第三个元素
        arr = [arr[i] for i in range(len(arr)) if (i + 1) % 3 != 0]
        
        if remainder == 1 or remainder == 2:
            # 将末尾的元素移到最前面，根据需要重复一次
            arr = arr[-remainder:] + arr[:-remainder]
    return arr

# 测试函数
print(whoIsLastAR(10))
